/* 
 * ProjectFile: message-broker\src\config.cjs
 * Created: lijianwei 2021-12-15 19:36:34
 * -----
 * LastModified: lijianwei 2023-01-10 10:48:18
 * -----
 * Copyright (c) 2016-2023 Rongwen Tech Ltd.
 * -----
 */
var dotenv = require('dotenv')
var _ = require('lodash')
var path = require('path')
var cliArgv = require('minimist')(process.argv.slice(2))

// env file config
const projRoot = path.dirname(__dirname) // 项目根目录, 由于变量 __dirname 需要cjs 才能获取，所以配置文件类型用cjs
const projEnv = dotenv.config({
    path: projRoot + '/.env'
}).parsed

// const entrancePath = __filename
// console.log('[projRoot]', projRoot)
// console.log(projEnv)

/**
 * 工程变量
 */
let AppConfig = {
    // 应用配置
    title: '通讯中心', // name: 'Communication Service',
    appId: 'central-message',
    projRoot, // 项目根目录
    ENV: projEnv.ENV_RUNENV, // 项目变量
    ENV_DEBUG: typeof projEnv.ENV_DEBUG === 'undefined' ? (projEnv.ENV_RUNENV === 'dev') : projEnv.ENV_DEBUG, // 是否调试模式
    distrbId: projEnv.ENV_distrbId || 1, // 分布式服务器标识
    // 服务地址相关
    mqttPort: projEnv.ENV_mqttPort, // mqtt [port]
    wsPort: projEnv.ENV_wsPort, // mqtt ov ws [port]
    domainBaseService: projEnv.ENV_BASE_HTTP, // 基础平台的http服务host
    storeRedisHost: projEnv.ENV_REDIS_HOST, // redis缓存服务host
    storeRedisPwd: projEnv.ENV_REDIS_PWD, // redis缓存服务密码
    ssoUrlProfix: projEnv.ENV_ssoUrlProfix || 'baseplatform', // 认证中心地址前缀
}

// cli option
delete cliArgv._
if (!_.isEmpty(cliArgv)) {
    AppConfig = Object.assign(AppConfig, cliArgv)
}

module.exports = {
    AppConfig,
}
